-- stack: in.0-4 -- format: 8 (HyperCard 1) -- flags: 0x1000 (none) -- protect password hash: 0 -- maximum user level: 5 (scripting) -- window: Rect(x1=0, y1=0, x2=0, y2=0) -- screen: Rect(x1=0, y1=0, x2=0, y2=0) -- card dimensions: w=0 h=0 -- scroll: x=0 y=0 -- background count: 5 -- first background id: 2767 -- card count: 34 -- first card id: 13805 -- list block id: 19931 -- print block id: 6670 -- font table block id: 0 -- style table block id: 0 -- free block count: 0 -- free size: 0 bytes -- total size: 162240 bytes -- stack block size: 7680 bytes -- created by hypercard version: 0x01228000 -- compacted by hypercard version: 0x01228000 -- modified by hypercard version: 0x01228000 -- opened by hypercard version: 0x01228000 -- patterns[0]: 0x0000000000000000 -- patterns[1]: 0x8000000008000000 -- patterns[2]: 0x8800220088002200 -- patterns[3]: 0x8888222288882222 -- patterns[4]: 0x88AA22AA88AA22AA -- patterns[5]: 0xCCAA33AACCAA33AA -- patterns[6]: 0xEEAABBAAEEAABBAA -- patterns[7]: 0xEEBBBBEEEEBBBBEE -- patterns[8]: 0xFFBBFFEEFFBBFFEE -- patterns[9]: 0xFFBBFFFFFFBBFFFF -- patterns[10]: 0x8010022001084004 -- patterns[11]: 0xFFFFFFFFFFFFFFFF -- patterns[12]: 0x8822882288228822 -- patterns[13]: 0x1122448811224488 -- patterns[14]: 0xC4800C6843023026 -- patterns[15]: 0xB130031BD8C00C8D -- patterns[16]: 0xAA00AA00AA00AA00 -- patterns[17]: 0x8822552288225522 -- patterns[18]: 0x8855225588552255 -- patterns[19]: 0x77DD77DD77DD77DD -- patterns[20]: 0x8000000000000000 -- patterns[21]: 0xAA55AA55AA55AA55 -- patterns[22]: 0x038448300C020101 -- patterns[23]: 0x8244394482010101 -- patterns[24]: 0x8814224188412214 -- patterns[25]: 0x8080413E080814E3 -- patterns[26]: 0x22048C7422179810 -- patterns[27]: 0xBE808808EB088880 -- patterns[28]: 0x25C8328964244C92 -- patterns[29]: 0xA29C41BE2AC914EB -- patterns[30]: 0x40A00000040A0000 -- patterns[31]: 0x8040200002040800 -- patterns[32]: 0xAA00800088008000 -- patterns[33]: 0xB700EA00AD005B00 -- patterns[34]: 0x2449922449922449 -- patterns[35]: 0x4992244992244992 -- patterns[36]: 0x1000000004000080 -- patterns[37]: 0xAAAAAAAAAAAAAAAA -- patterns[38]: 0xFF7FBE5DA2418000 -- patterns[39]: 0xFAF5FAF5A050A050 -- checksum: 0x0 ----- HyperTalk script ----- -- ================ Apple Training Support ================= -- -- Project Name: HyperCard 2.0 Product Training -- -- Apple employees: -- Design and Development: Jeff Brechlin -- Team Leader: Mary VanRiper -- -- Contractors: -- Design/Animations: Anne Wysocki -- Programmers: Gabriel Acosta, Kristi Wachter, Anne Wysocki -- Last modified: April 6, 1990 -- ======================================================== on closeBackground hide fld "Feedback" pass closeBackground end closeBackground -- This handler dehilites the buttons and hides the feedback on cds. on resetCd dehiliteBtns hideFeedback end resetCd -- This GoNext handler hides the feedback fld if it's empty. on goNext lock screen hide fld "feedback" go next if fld "feedback" is not empty then show fld "feedback" unlock screen with wipe left end goNext -- This GoPrev handler hides the feedback fld if it's empty. on goPrev lock screen hide fld "feedback" go prev if fld "feedback" is not empty then show fld "feedback" unlock screen with wipe right end goPrev --========= CHECK ANSWERS -- This handler checks the user's answer on cards that have -- a single answer. It shows feedback using "whichIsHilited", -- "noAns", and "ans", all found in this stack script. on checkOneRight cdOrBg hide fld "feedback" put whichIsHilited() into choice if choice is "none" then noAns cdOrBg else ans choice,cdOrBg end if end checkOneRight -- This handler checks the user's answer on cards that have -- more than one answer. It shows feedback using "noAns" and "ans", -- which are found in this stack script. on checkManyRight cdOrBg put empty into choices repeat with i=1 to number of cd btns-2 if the hilite of btn ("choice" & i) is true then put i after choices end if end repeat if choices is fld "answer" then ans 1,cdOrBg else if length(choices) = 0 then noAns cdOrBg else if length(choices) = 1 then ans 2,cdOrBg else ans 3,cdOrBg end checkManyRight --========= RESET BUTTONS -- This handler resets draggable buttons to their original locations. on resetBtns repeat with i = 1 to number of cd btns moveBtnBack i end repeat end resetBtns -- This handler reset a single draggable btn to its original location. on moveBtnBack i set the loc of btn i to line i of cd fld "theLocs" end moveBtnBack --========= BUTTON HILITES -- This handler returns the number of the hilited button. If no -- button is hilited, it returns "none". function whichIsHilited repeat with i=1 to number of cd btns if the hilite of btn i is true then return i end if end repeat return "none" end whichIsHilited -- This handler dehilites all btns, then hilites the target. -- Used for groups of radio buttons. on HiliteRadio dehiliteBtns set the hilite of the target to true end HiliteRadio -- This handler dehilites all btns. on dehiliteBtns repeat with i = 1 to number of cd btns set the hilite of cd btn i to false end repeat end dehiliteBtns --========= FEEDBACK -- This handler shows feedback when the user presses the "Done" button -- before choosing an answer. The "cdOrBg" argument handles cds that -- must show feedback in the cd layer (because of cd-layer graphics). on noAns cdOrBg lock screen if cdOrBg contains "c" then put "Please select an answer first." into cd fld "feedback" show cd fld "Feedback" else put "Please select an answer first." into fld "feedback" show fld "Feedback" end if unlock screen with wipe right end noAns -- This handler gives feedback The "cdOrBg" argument handles cds that -- must show feedback in the cd layer (because of cd-layer graphics). on ans num,cdOrBg lock screen if cdOrBg contains "c" then put line num of fld "AllFeed" into cd fld "feedback" show cd fld "feedback" else put line num of fld "AllFeed" into fld "feedback" show fld "feedback" end if unlock screen with wipe right end ans -- This handler hides feedback. It checks for the presence of a -- cd-layer feedback fld; if it finds one, it hides it. on hideFeedback put empty into fld "feedback" hide fld "feedback" if number of cd flds > 0 then if short name of cd fld (number of cd flds) is "Feedback" then put empty into cd fld "feedback" hide cd fld "feedback" end if end if end hideFeedback --========= DRAGGING OBJECTS -- This handler moves a btn with the mouse, allowing it to be dragged. on dragTarg set the loc of the target to the mouseLoc end dragTarg -- This handler takes care of dropping btns on cards where they can -- be dropped into one of several boxes. -- If it is within a dropoff box, it is centered there; otherwise, -- it's moved back to its original position. on dropIt howMany repeat with i=1 to howMany if loc of the target is within rect of cd fld ("definition" & i) then set loc of the target to loc of cd fld ("definition" & i) exit dropIt end if end repeat moveBtnBack the number of the target end dropIt --=================== -- These handlers trap for arrow keys and menu choices -- so they can't be used to navigate. on arrowKey end arrowKey on enterKey end enterKey on returnKey end returnKey on doMenu menuChoice if menuChoice is in "Home,Quit HyperCard,Help,New Stack...,Open Stack..." then global CameFrom,stakName put the short name of this cd into CameFrom put the short name of this stack into stakName lock screen go to cd "hi" of stack "Intro to HyperCard 2.0" else if menuChoice is in "Back,Recent,First,Prev,Next,Last" or menuChoice is in "Find...,Message,New Card,Delete Card,Cut Card" then exit to HyperCard end if pass doMenu end doMenu